<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<script>
    /*
    * 定调：js开发中 最最最常用的一些知识，处理数据，字符串，数组
    * 怎么用？
    * 存在的意义？
    * 实现原理？
    *
    * 学会归纳 某些api（方法的接口）的一些描述：
    *   1.接收哪几个参数 参数的范围是什么
    *   2.返回什么内容 表示什么含义
    *   3.功能是什么
    *
    * 字符串方法：(字符串有一个非常重要的特性：字符串无法修改)
    *   方法：就是.之后的内容
    *
    *   一 .length 字符串表示长度的方法 是字符串的属性 中英文字符的长度都一样 空格也算一个字符 最小字符长度为0：""   \n表示转义且是一个字符长度
    *
    *   二 []下标 可以将字符串看成一个数组 通过下标访问每一个字符 从0开始
    *       let str = "银时真帅"
    *       console.log(str[3]) //访问字符串中下标为3的字符（注意不要写成(str.3)会被解析成小数点）
    *
    *   实现一个小功能 把一个字符串str中的"今天很开心"中每个字符逐一添加到ul里面的li标签
    *
    *   let str = "今天很开心"
    *
    *   //遍历字符串
    *   let ul = document.querySelector("ul")
    *   let result = ""
    *   for(i = 0;i < str.length;i++){
    *       result += `<li>${str[i]}</li>` //优化渲染效果 将结果存储在变量中 最后一次性交给浏览器渲染
    *   }
    *   ul.innerHTML = result
    *
    *   三 .charAt() 访问下标的方法（老版本浏览器） 是一个函数 直接等价于[]
    *   let str = "今天很开心"
    *   console.log(str.charAt(0)) //打印 今 字符
    *
    *   四 .charCodeAt() 也是访问下标的那个字符，会返回那个字符的编码（ASCII码）
    *   "ab".charCodeAt(0) //访问字符串中下标为0的那个字符的ASCII码
    *   字符串比较大小 就是从他们各自首位字符的ASCII码进行比较 如果首位相同 再比较第二位 依次类推
    *   中文转ASCII
    *   "银时".charCodeAt(0) //38134
    *   "银时".charCodeAt(1) //26102
    *   ASCII转中文
    *   String.fromCharCode(38134,26102) //"银时"（会自动拼接）
    *
    *   "我喜欢你".charCodeAt(0) //25105
    *   "我喜欢你".charCodeAt(1) //21916
    *   "我喜欢你".charCodeAt(2) //27426
    *   "我喜欢你".charCodeAt(3) //20320
    *   String.fromCharCode(...[25105,21916,27426,20320])
    *
    *   五 .concat 字符串拼接 支持若干个字符
    *   "1".concat("2") //"12"
    *   "1".concat("2","3","4") //"1234"
    *   拼接数组
    *   "1".concat(...["2","3","4"]) //"1234"
    *
    *   小练习：
    *   现在有一个数组arr，数组里面有["1","2","3"]，怎样将他们拼接成字符串输出？
    *   let arr = ["1","2","3"]
    *   //方法一：
    *   console.log("".concat(...arr)) //这样就行了 可以用for循环遍历 但没必要
    *   //方法二：封装数组转字符串的方法
    *   function arrayToString(arr){ //传进来一个数组
    *       return "".concat(...arr)
    *   }
    *   console.log(arrayToString(arr))
    *
    *   字符串无法被修改：我们只能对变量重新赋值，只有变量可以接受改变
    *   let str = "abc"
    *   str[0] = "d"
    *   console.log(str) //依旧是字符串abc 不会被修改
    *
    *   let str = "abc"
    *   str.length = 5
    *   console.log(str) //依旧是字符串abc
    *   console.log(str.length) //长度依旧是3
    *
    *   五 .includes()字符串中是否包含某个字符
    *   let str = "银时很帅"
    *   console.log(str.includes("很帅")) //会返回一个布尔值
    *
    *   六 .indexOf() 查询匹配字符出现位置的下标 可以（也可以不）接收第二个参数 表示开始查询的起始位置 查询到了返回第一个出现的下标 查询不到返回-1
    *
    *   七 .lastIndexOf 倒着查询 永远返回下标 下标一定是从左到右
    *   console.log("abcabc".lastIndexOf("c"))
    *
    *   八 .repeat()字符串重复次数 括号内填需要重复的次数
    *   console.log("银时真棒！".repeat(100)) //会打印100次字符串内容
    *
    *   九 .replace(,)字符串替换 接收两个参数 前面是需要被替换的旧字符，后面是即将替换的新字符 但是他只能替换一次 要是有多个要替换就只能替换第一个
    *   "银时真帅！".replace("银时","我") //将银时替换了，换成我
    *
    *   十 .toUpperCase()小写转大写 .toLowerCase()大写转小写
    *   "abc".toUpperCase() //打印"ABC"
    *   "ABC".toLowerCase() //打印"abc"
    *
    *
    *
    *
    * */






</script>
</body>
</html>